package com.flyiu.data.idempotent.context;


import java.lang.reflect.Method;

import org.springframework.core.annotation.AnnotationUtils;

import com.flyiu.data.idempotent.annotation.Idempotent;

/**
 * 
 * <p>
 * </p>
 *
 * @author flyiu@flyiu.com
 * @version $Id: IdempotentUtil.java, v 0.1 2018年6月30日 下午12:31:34 flyiu Exp $
 */
public class IdempotentUtil {

    /**
     * 根据方法查询幂等注解
     * 首先尝试通过方法查询，如方法未获取到则通过Class尝试获取注解
     * 
     * @param method
     * @return
     */
    public static Idempotent getIdempotentAnnotation(Method method) {
        Idempotent idempotent = AnnotationUtils.findAnnotation(method, Idempotent.class);
        if (idempotent == null) {
            idempotent = AnnotationUtils.findAnnotation(method.getDeclaringClass(), Idempotent.class);
        }
        return idempotent;
    }

}
